package com.sg.dto.biz.app.res;

import com.sg.dto.biz.app.common.MidOrBasicDeptDirectorDto;
import com.sg.dto.biz.app.common.QuestionDto;
import com.sg.dto.biz.app.common.StakeholdersProblemDto;
import com.sg.dto.biz.app.common.WorkTaskParticipantsDto;
import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @desc ImplementTypeCodeFieldsAcceptRespDto
 * @使用场景
 */
@Data
public class ImplementTypeCodeFieldsAcceptRespDto
        extends BaseDto
        implements Serializable {

    @ApiModelProperty("问题列表")
    private List<QuestionDto> questionList = new ArrayList<>();
    /**
     * 工作任务对象类型 PROJECT:项目 TASK:任务 PROBLEM:问题
     */
    @ApiModelProperty("工作任务对象类型")
    private String workTaskObjectType;
    /**
     * 内容表类型编码 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表 OMS_EVA_BATCH_RELATED_SET:评价模板批次相关设置表 OMS_TARGET_CYCLE_PLAN_SET:目标周期规划设置表 OMS_TARGET_OBJECTIVE_PLAN_EXTEND:指标扩展规划设置表 OMS_MESSAGE_CHANNEL:通道表 OMS_ORG_ORGANIZATION:组织表 OMS_PROJECT:项目表 OMS_ORG_DEPT:部门表 OMS_QUESTION:问题表 OMS_OFFICIAL_DOCUMENT:公文表
     */
    @ApiModelProperty("内容表类型编码")
    private String tableTypeCode;
    /**
     * 完成情况 AHEAD_SCHEDULE:提前完成（提前24h） NORMAL_COMPLETE:正常完成 OVERDUE_COMPLETE:逾期完成
     */
    @ApiModelProperty("完成情况")
    private String completeStatus;
    /**
     * 自定义文本字段
     */
    @ApiModelProperty("自定义文本字段")
    private String customText;
    /**
     * 传输数值（整数型）
     */
    @ApiModelProperty("传输数值（整数型）")
    private Long outputNum;
    /**
     * 操作时间
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;
    /**
     * 工作任务对象ID
     */
    @ApiModelProperty("工作任务对象ID")
    private String workTaskObjectId;
    /**
     * 内容状态
     */
    @ApiModelProperty("内容状态")
    private String stateCode;
    /**
     * 任务进展状态 NOT_AT_THE:未开始 ONGOING:进行中 HAS_ENDED:已结束
     */
    @ApiModelProperty("任务进展状态")
    private String taskStatus;
    /**
     * 内容主状态
     */
    @ApiModelProperty("内容主状态")
    private String contentPrimaryStatus;

    /**
     * 内容辅状态
     */
    @ApiModelProperty("内容辅状态")
    private String contentAuxiliaryStatus;
    /**
     * 工作任务待签收状态
     */
    @ApiModelProperty("工作任务待签收状态")
    private String workTaskTobesign;

    /**
     * 工作任务进行中状态
     */
    @ApiModelProperty("工作任务进行中状态")
    private String workTaskOngoing;

    /**
     * 工作任务已逾期状态
     */
    @ApiModelProperty("工作任务已逾期状态")
    private String workTaskOverdue;
    /**
     * 安排主体ID
     */
    @ApiModelProperty("安排主体ID")
    private String arrangeSubjectId;

    /**
     * 安排主体类型编码 OMS_ORG_ORGANIZATION:组织表 OMS_ORG_DEPT:部门表
     */
    @ApiModelProperty("安排主体类型编码")
    private String arrangeSubjectTypeCode;
    /**
     * 高层分管领导身份人员ID
     */
    @ApiModelProperty("高层分管领导身份人员ID")
    private String deptLeaderOriginalRoleMemberId;

    /**
     * 高层分管领导账号
     */
    @ApiModelProperty("高层分管领导账号")
    private String deptLeaderUserId;

    /**
     * 高层分管领导就职记录ID
     */
    @ApiModelProperty("高层分管领导就职记录ID")
    private String deptLeaderInductionId;
    /**
     * 中基层安排人身份人员ID
     */
    @ApiModelProperty("中基层安排人身份人员ID")
    private String arrangeOriginalRoleMemberId;

    /**
     * 中基层安排人账号
     */
    @ApiModelProperty("中基层安排人账号")
    private String arrangeUserId;

    /**
     * 中基层安排人就职记录ID
     */
    @ApiModelProperty("中基层安排人就职记录ID")
    private String arrangeInductionId;
    /**
     * 上级分管领导身份人员ID
     */
    @ApiModelProperty("上级分管领导身份人员ID")
    private String supDeptLeaderOriginalRoleMemberId;

    /**
     * 上级分管领导账号
     */
    @ApiModelProperty("上级分管领导账号")
    private String supDeptLeaderUserId;

    /**
     * 上级分管领导就职记录ID
     */
    @ApiModelProperty("上级分管领导就职记录ID")
    private String supDeptLeaderInductionId;
    /**
     * 接收工作任务责任身份人员ID
     */
    @ApiModelProperty("接收工作任务责任身份人员ID")
    private String receiverOriginalRoleMemberId;

    /**
     * 接收工作任务责任人账号
     */
    @ApiModelProperty("接收工作任务责任人账号")
    private String receiverUserId;

    /**
     * 接收工作任务责任就职记录ID
     */
    @ApiModelProperty("接收工作任务责任就职记录ID")
    private String receiverInductionId;
    @ApiModelProperty("接收任务参与者列表")
    private List<WorkTaskParticipantsDto> workTaskParticipantsList = new ArrayList<>();
    @ApiModelProperty("工作任务所属中基层部门列表 ")
    List<String> workTaskMidOrBasicDeptList = new ArrayList<>();
    /**
     * 高中基层问题发起人身份人员ID
     */
    @ApiModelProperty("高中基层问题发起人身份人员ID")
    private String problemCreatorOriginalRoleMemberId;

    /**
     * 高中基层问题发起人账号
     */
    @ApiModelProperty("高中基层问题发起人账号")
    private String problemCreatorUserId;

    /**
     * 高中基层问题发起人就职记录ID
     */
    @ApiModelProperty("高中基层问题发起人就职记录ID")
    private String problemCreatorInductionId;
    /**
     * 接收问题责任人身份人员ID
     */
    @ApiModelProperty("接收问题责任人身份人员ID")
    private String problemReceiverOriginalRoleMemberId;

    /**
     * 接收问题责任人账号
     */
    @ApiModelProperty("接收问题责任人账号")
    private String problemReceiverUserId;

    /**
     * 接收问题责任人就职记录ID
     */
    @ApiModelProperty("接收问题责任人就职记录ID")
    private String problemReceiverInductionId;
    @ApiModelProperty("问题干系人")
    private List<StakeholdersProblemDto> stakeholdersProblem = new ArrayList<>();
    @ApiModelProperty("问题所属中基层部门列表 ")
    List<String> problemMidOrBasicDeptList = new ArrayList<>();
    /**
     * 高层问题发起人身份人员ID
     */
    @ApiModelProperty("高层问题发起人身份人员ID")
    private String highProblemCreatorOriginalRoleMemberId;

    /**
     * 高层问题发起人账号
     */
    @ApiModelProperty("高层问题发起人账号")
    private String highProblemCreatorUserId;

    /**
     * 高层问题发起人就职记录ID
     */
    @ApiModelProperty("高层问题发起人就职记录ID")
    private String highProblemCreatorInductionId;
    /**
     * 中基层问题发起人身份人员ID
     */
    @ApiModelProperty("中基层问题发起人身份人员ID")
    private String midOrBasicProblemCreatorOriginalRoleMemberId;

    /**
     * 中基层问题发起人账号
     */
    @ApiModelProperty("中基层问题发起人账号")
    private String midOrBasicProblemCreatorUserId;

    /**
     * 中基层问题发起人就职记录ID
     */
    @ApiModelProperty("中基层问题发起人就职记录ID")
    private String midOrBasicProblemCreatorInductionId;
    /**
     * 我发起的问题待解决位置标识
     */
    @ApiModelProperty("我发起的问题待解决位置标识")
    private String submitProblemToBeSolvedLoc;

    /**
     * 我发起的问题已超时位置标识
     */
    @ApiModelProperty("我发起的问题已超时位置标识")
    private String submitProblemOvertimeLoc;

    /**
     * 所有发起的问题待解决位置标识
     */
    @ApiModelProperty("所有发起的问题待解决位置标识")
    private String allProblemToBeSolvedLoc;

    /**
     * 所有发起的问题已超时位置标识
     */
    @ApiModelProperty("所有发起的问题已超时位置标识")
    private String allProblemOvertimeLoc;

    /**
     * 全部问题待解决位置标识
     */
    @ApiModelProperty("全部问题待解决位置标识")
    private String allProblemReceiveToBeSolvedLoc;

    /**
     * 全部问题已超时位置标识
     */
    @ApiModelProperty("全部问题已超时位置标识")
    private String allProblemReceiveOvertimeLoc;

    /**
     * 我接收的问题待解决位置
     */
    @ApiModelProperty("我接收的问题待解决位置")
    private String myProblemToBeSolvedLoc;

    /**
     * 我接收的问题已超时位置
     */
    @ApiModelProperty("我接收的问题已超时位置")
    private String myProblemOvertimeLoc;
    /**
     * 数据总条数
     */
    @ApiModelProperty("数据总条数")
    private Long totals;
    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;
    /**
     * 是否存档 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否存档")
    private String isArchive;
    /**
     * 消息ID
     */
    @ApiModelProperty("消息ID")
    private String messageId;

    /**
     * 是否已处理 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否已处理")
    private String isHandle;
    /**
     * 主题内容类型编码 ORG_OR_DEPT:组织或部门 INTELLIGENT_HARDWARE_EQUIPMENT:智能硬件设备 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表 OMS_EVA_BATCH_RELATED_SET:评价模板批次相关设置表 OMS_TARGET_CYCLE_PLAN_SET:目标周期规划设置表 OMS_TARGET_OBJECTIVE_PLAN_EXTEND:指标扩展规划设置表 OMS_MESSAGE_CHANNEL:通道表 OMS_ORG_ORGANIZATION:组织表 OMS_PROJECT:项目表 OMS_ORG_DEPT:部门表 OMS_QUESTION:问题表 OMS_OFFICIAL_DOCUMENT:公文表
     */
    @ApiModelProperty("主题内容类型编码")
    private String themeContentTypeCode;

    /**
     * 主题内容ID
     */
    @ApiModelProperty("主题内容ID")
    private String themeContentId;
    /**
     * 角色标识
     */
    @ApiModelProperty("角色标识")
    private String roleCode;

    /**
     * 组内职务名称
     */
    @ApiModelProperty("组内职务名称")
    private String virtualOrganizationPosition;

    /**
     * 主体变更日志类型
     */
    @ApiModelProperty("主体变更日志类型")
    private String subjectChangeType;
    /**
     * 模板引擎标识
     */
    @ApiModelProperty("模板引擎标识")
    private String templateSemanticEngineCode;

    /**
     * 短信行为类型
     */
    @ApiModelProperty("短信行为类型")
    private String smsBehaviorType;
    /**
     * 消息模板标识
     */
    @ApiModelProperty("消息模板标识")
    private String messageTemplateCode;
    /**
     * 虚拟组织成员就职记录ID
     */
    @ApiModelProperty("虚拟组织成员就职记录ID")
    private String virtualOrgInductionRecordId;
    @ApiModelProperty("中基层主管部门主管人员列表")
    private List<MidOrBasicDeptDirectorDto> midOrBasicDeptDirectorList = new ArrayList<>();
    /**
     * 消息标题模板引擎标识
     */
    @ApiModelProperty("消息标题模板引擎标识")
    private String msgTitleTemplateSemanticEngineCode;
    /**
     * 发送消息场景 AUTO_GEN_REPORT_TASK_SUB:自动生成汇报任务（待汇报-空转未开始） AUTO_ANA_SUBMIT_TO_SUC:自动分析进行中汇报任务（待汇报转已成功） AUTO_GEN_REPORT_TASK_ONGOING:自动生成汇报任务（待汇报-空转进行中） SUB_REPORT_TASK_SUB_OVERDUW_TO_SUC:提交汇报任务（已逾期转已成功） AUTO_ANA_SUBMIT_TO_SUC:自动分析待汇报任务（待汇报转已成功） AUTO_ANA_NOT_AT_THE_REPORT_TASK_ONG:自动分析待汇报任务（未开始转进行中） SUB_REPORT_TASK_SUB_TO_EVA:提交汇报任务（待汇报转评价中） REMIND_HANDLE_PROBLEM:督办问题 SUB_REPORT_TASK_SUB_TO_EXA:提交汇报任务（待汇报转审核中） SUB_REPORT_TASK_SUB_TO_SUC:提交汇报任务（待汇报转已成功） REMIND_REPORT_TASK:提醒汇报 EVA_REPORT_TASK_EVA_TO_EXA:评价汇报任务（评价中转审核中） EVA_REPORT_TASK_EVA_TO_SUC:评价汇报任务（评价中转已成功） EXA_REPORT_TASK_EXA_TO_SUC:审核汇报任务（审核中转已成功） EXA_REPORT_TASK_EXA_TO_FAIL:审核汇报任务（审核中转已失败） AUTO_ANA_SUBMIT_TO_OVERDUE:自动分析逾期任务（待汇报转已逾期） AUTO_ANA_EVA_TO_OVERDUE:自动分析逾期任务（评价中转已逾期） AUTO_ANA_EXA_TO_OVERDUE:自动分析逾期任务（审核中转已逾期） AUTO_ANA_OVERDUE_TO_FAIL:自动分析失败任务（已逾期转已失败） CANCEL_REPORT_TASK_EVA_TO_SUB:撤销汇报任务（评价中转待汇报） CANCEL_REPORT_TASK_EXA_TO_SUB:撤销汇报任务（审核中转待汇报） REJECT_REPORT_TASK_EVA_TO_SUB:驳回任务（评价中转待汇报） REJECT_REPORT_TASK_EXA_TO_SUB:驳回任务（审核中转待汇报） ARRANGE_WORK_TASK_TOBESIGN:安排工作任务（待签收） ARRANGE_WORK_TASK_ONGOING:安排工作任务（进行中） ARRANGE_WORK_TASK_NOT_AT_THE:安排工作任务（未开始） CFM_REC_WORK_TASK_SIGN:确认签收工作任务（已签收-空转未开始） AUTO_ANA_WORK_TASK_NOT_AT_THE_TO_ONGOING:自动分析进行中工作任务（未开始转进行中） AUTOMATIC_ANALYSIS_OF_UPCOMING_OVERDUE_WORK_TASKS:自动分析即将逾期工作任务（进行中） ADVANCE_WORK_TASK_NOT_AT_THE_TO_ONGOING:工作任务人工提前开始（未开始转进行中） CFM_REC_WORK_TASK_SIGN_ONGOING:确认签收工作任务（已签收-空转进行中） AUTO_ANA_WORK_TASK_ONGOING_TO_OVERDUE:自动分析逾期工作任务（进行中转已逾期） UPDATE_WORK_TASK_ONGOING_TO_SUC:更新工作任务（进行中转已成功） CANCLE_WORK_TASK_NOT_AT_THE_TO_FAIL:撤销工作任务（未开始转已失败） CANCLE_WORK_TASK_ONGOING_TO_FAIL:撤销工作任务（进行中转已失败） VOID_WORK_TASK_ONGOING_TO_FAIL:作废工作任务（进行中转已失败） VOID_WORK_TASK_OVERDUE_TO_FAIL:作废工作任务（已逾期转已失败） AUTO_ANA_WORK_TASK_ONGOING_TO_FAIL:自动分析失败工作任务（进行中转失败） CREATE_PROBLEM:发起问题（待解决） UPDATE_WORK_TASK_OVERDUE_TO_SUC:更新工作任务（已逾期转已成功） AUTO_ANA_PROBLEM_OVERTIME:自动分析超时问题（已超时） UPDATE_WORK_TASK_ONGOING:更新工作任务（进行中） SOLVE_PROBLEM_SHE_TO_QTA:问题转待解决（已搁置转待解决） OTHER_STATUS_PROBLEM_TO_SOLVE:其他状态问题转待解决 SOLVE_PROBLEM_SUS_TO_QTA:问题转待解决（已挂起转待解决） REJECTED_PROBLEM_QTA_TO_REJ:问题设拒绝（待解决转已拒绝） CLOSED_PROBLEM_QTA_TO_CLS:问题设关闭（待解决转已关闭） CLOSED_PROBLEM_SHE_TO_CLS:问题设关闭（已搁置转已关闭） CLOSED_PROBLEM_SUS_TO_CLS:问题设关闭（已挂起转已关闭） RESOLVED_PROBLEM_QTA_TO_RES:问题设解决（待解决转已解决） REMIND_SIGN_WORK_TASK:提醒签收工作任务 REMIND_HANDLE_WORK_TASK:督办工作任务 GENERATE_REPORT_TASK_PROBLEM:提交汇报任务问题 ISSUE_TARGET:下发目标 CFM_REC_PRIMARY_OBJECTIVE:确认签收一级指标 CFM_REC_SECOND_ABOVE_OBJECTIVE:确认签收二级及以上指标 REMIND_HANDLE_PRIMARY_DEPT_ARRANGE:督办一级部门目标安排 REMIND_HANDLE_SECOND_ABOVE_DEPT_ARRANGE:督办二级及以上部门目标安排 AUTO_ANA_SUB_REPORT_TASK_WILL_OVERDUE:自动分析即将逾期任务（待汇报） AUTO_ANA_EVA_REPORT_TASK_WILL_OVERDUE:自动分析即将逾期任务（评价中） AUTO_ANA_EXA_REPORT_TASK_WILL_OVERDUE:自动分析即将逾期任务（审核中） REVIEW_AND_SUBMIT_THREE_BUSINESS_MESSAGES:审核提交三条业务消息 UPDATE_TARGET_VALUE:修改目标值 ISSUE_TARGET:下发目标 CFM_REC_PRIMARY_OBJECTIVE:确认签收一级指标 CFM_REC_SECOND_ABOVE_OBJECTIVE:确认签收二级及以上指标 REMIND_HANDLE_PRIMARY_DEPT_ARRANGE:督办一级部门目标安排 REMIND_HANDLE_SECOND_ABOVE_DEPT_ARRANGE:督办二级及以上部门目标安排 ISSUE_OFFICIAL_DOC_SEND_EVERYONE:下发公文给所有人 ISSUE_OFFICIAL_DOC_SEND_DEPT:下发公文给部门 ISSUE_OFFICIAL_DOC_SEND_PERSON:下发公文给个人 ISSUE_NOTIFICATION_SEND_EVERYONE:下发通知给所有人 ISSUE_NOTIFICATION_SEND_DEPT:下发通知给部门 ISSUE_NOTIFICATION_SEND_PERSON:下发通知给个人 ISSUE_OFFICIAL_DOC_WORK_TASK_ARRANGE:下发公文工作任务安排 URGE_ISSUE_OFFICIAL_DOC_WORK_TASK_ARRANGE:催办公文工作任务安排 ASK_MY_COPYWRITER_ASSISTANT:提问我的文案助手 INITIATE_INDEPENDENT_THIRD_PARTY_QA:发起独立第三方问答 IMPLEMENT_THIRD-PARTY_INTELLIGENT_ANSWER:执行第三方智能回答 MY_INTELLIGENT_QA:我的智能问答 SOLVE_PROBLEM_QTA_TO_OTHER:待解决问题转其他状态（暂搁置、已挂起...）
     */
    @ApiModelProperty("发送消息场景")
    private String sendMsgScene;
    /**
     * 周期阶段资料记录ID
     */
    @ApiModelProperty("周期阶段资料记录ID")
    private String cycleStageDataId;

}
